#pragma once
#include <QDir>
#include <map>
#include <string>
#include <fstream> 
#include <boost/shared_ptr.hpp>
#include "RiskMeasure.h"

namespace quic
{
	class RiskMeasureDot
	{
	public:
		RiskMeasureDot(void);
		~RiskMeasureDot(void);
                QString renderDotGraph(boost::shared_ptr<RiskMeasure> riskMeasure);
	private:
		void renderEdges(boost::shared_ptr<RiskMeasure> riskMeasure, std::ofstream &out,
			std::map<std::string,bool> &renderedNodes);
                inline const QString getDotPath()
		{
                        //return QDir::tempPath() + "/risk_measure.dot";
                        return "risk_measure.dot";
                }

                inline const QString getImagePath()
		{
                        //return QDir::tempPath() + "/risk_measure.png";
                        return "risk_measure.png";
                }

		std::string nodeIdentifier(boost::shared_ptr<RiskMeasure> riskMeasure);
	};
};
